<?php

namespace app\common\controller;

use think\Controller;
use think\Session;
use think\Cache;
use think\Db;

class UsersBase extends Controller {

    public $user_info = [];
    
    protected function _initialize() {

        parent::_initialize();
        
        if ($this->request->action() != 'index') {  //不是对外公开的首页
            
            //如果没有登录跳转登录页面
            if (!Session::get('user_info'))
                $this->redirect('Login/index');
            
            
            $this->user_info = getUserInfo(Session::get('user_info.user_id'));
            
            //获取有多少评论我的
            $comment_my_count = Db::name('Article')->alias('a')->field('c.id')->join('__COMMENT__ c', 'a.article_id=c.article_id','left')->where(['a.user_id'=>$this->user_info['user_id'],'c.status'=>0])->count();
            
            //实时修改会员的积分
            if(Session::get('user_info.user_points') != $this->user_info['user_points'])
                Session::set('user_info.user_points',$this->user_info['user_points']);
            
            $this->assign([
                'comment_my_count'=>$comment_my_count,
                'user_info'=>$this->user_info
            ]);
            
            if($this->user_info['status'] == 0){
                $this->sendError('你的账号被禁用，请联系管理员！',0,$this->request->domain(),1);
            }
            
            
            //判断用户是否超时  如果用户在一个小时之内有操作那么延后一个小时 如一个小时都没操作那么提示超时
            $expiretime = Session::get('expiretime');
            if($expiretime) {
                if($expiretime < time()) {
                    if($this->request->isAjax()){
                        Session::delete('expiretime');
                        clear();
                        die(\UtilD::handleResult(0, '登录超时,请重新登录！','/index/login/index'));
                    }else{
                        Session::delete('expiretime');
                        $this->sendError('登录超时,请重新登录！',0,$this->request->domain().'/index/login/index',1);
                    }
                }else {
                    Session::set('expiretime',time() + 3600);// 刷新时间戳
                }
            }
        }
    }
    
}
